/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * DialogoArchivo.java
 *
 * Created on 22-nov-2012, 18:14:27
 */
package com.promesa.gui;

import com.promesa.hilo.BarraHilo;
import java.awt.Component;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JCheckBox;

/**
 *
 * @author Administrador
 */
public class DialogoArchivo extends javax.swing.JDialog {

    private List<String> archivos;

    /** Creates new form DialogoArchivo */
    public DialogoArchivo(java.awt.Frame parent, boolean modal, List<String> archivos) {
        super(parent, modal);
        initComponents();
        this.archivos = archivos;
        this.setSize(300, 300);
        this.setLocationRelativeTo(null);
        llenarListaArchivosDisponibles();
    }

    private void llenarListaArchivosDisponibles() {
        for (String string : archivos) {
            JCheckBox chk = new JCheckBox(string);
            jPanel2.add(chk);
        }
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jPanel1 = new javax.swing.JPanel();
        jBtnInstalarDialogoArchivo = new javax.swing.JButton();
        jBtnCancelarDialogoArchivo = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        jPanel2 = new javax.swing.JPanel();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel1.setText("LISTA DE ARCHIVOS DISPONIBLES");
        jLabel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(5, 5, 5, 5));
        getContentPane().add(jLabel1, java.awt.BorderLayout.PAGE_START);

        jPanel1.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));

        jBtnInstalarDialogoArchivo.setText("Instalar");
        jBtnInstalarDialogoArchivo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBtnInstalarDialogoArchivoActionPerformed(evt);
            }
        });
        jPanel1.add(jBtnInstalarDialogoArchivo);

        jBtnCancelarDialogoArchivo.setText("Cancelar");
        jBtnCancelarDialogoArchivo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBtnCancelarDialogoArchivoActionPerformed(evt);
            }
        });
        jPanel1.add(jBtnCancelarDialogoArchivo);

        getContentPane().add(jPanel1, java.awt.BorderLayout.PAGE_END);

        jPanel2.setLayout(new javax.swing.BoxLayout(jPanel2, javax.swing.BoxLayout.PAGE_AXIS));
        jScrollPane1.setViewportView(jPanel2);

        getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);

        pack();
    }// </editor-fold>//GEN-END:initComponents

private void jBtnInstalarDialogoArchivoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnInstalarDialogoArchivoActionPerformed
    List<String> listaArchivosSeleccionados = obtenerListaArchivosSeleccionados();
    BarraHilo barraHilo = new BarraHilo(3,listaArchivosSeleccionados);
    barraHilo.start();
    this.dispose();
}//GEN-LAST:event_jBtnInstalarDialogoArchivoActionPerformed

private List<String> obtenerListaArchivosSeleccionados(){
    List<String> listaArchivosSeleccionados = new ArrayList<String>();
    Component[] arregloComponente = jPanel2.getComponents();
    for (int i = 0; i < arregloComponente.length; i++) {
        Component component = arregloComponente[i];
        if (component instanceof JCheckBox) {
            JCheckBox chk = (JCheckBox) component;
            if (chk.isSelected()) {
                listaArchivosSeleccionados.add(chk.getText());
            }
        }
    }
    return listaArchivosSeleccionados;
}

private void jBtnCancelarDialogoArchivoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnCancelarDialogoArchivoActionPerformed
    this.dispose();
}//GEN-LAST:event_jBtnCancelarDialogoArchivoActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jBtnCancelarDialogoArchivo;
    private javax.swing.JButton jBtnInstalarDialogoArchivo;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane1;
    // End of variables declaration//GEN-END:variables
}
